if (surface)
{
cairo_region_t *region;
- cairo_region_t *csd_region;
cairo_region_t *app_region;
gboolean free_region;
app_region = g_object_get_qdata (G_OBJECT (widget), quark_input_shape_info);
- csd_region = g_object_get_data (G_OBJECT (widget), "csd-region");
free_region = FALSE;
- if (app_region && csd_region)
- {
- free_region = TRUE;
- region = cairo_region_copy (app_region);
- cairo_region_intersect (region, csd_region);
- }
- else if (app_region)
+ if (app_region)
region = app_region;
- else if (csd_region)
- region = csd_region;
else
region = NULL;
}
}
-void
-gtk_widget_set_csd_input_shape (GtkWidget *widget,
- const cairo_region_t *region)
-{
- if (region == NULL)
- g_object_set_data (G_OBJECT (widget), "csd-region", NULL);
- else
- g_object_set_data_full (G_OBJECT (widget), "csd-region",
- cairo_region_copy (region),
- (GDestroyNotify) cairo_region_destroy);
- gtk_widget_update_input_shape (widget);
-}
-
/**
* gtk_widget_input_shape_combine_region:
* @widget: a #GtkWidget
gboolean gtk_widget_has_tick_callback (GtkWidget *widget);
-void gtk_widget_set_csd_input_shape (GtkWidget *widget,
- const cairo_region_t *region);
-
gboolean gtk_widget_has_size_request (GtkWidget *widget);
void gtk_widget_reset_controllers (GtkWidget *widget);
if (rect.width > 0 && rect.height > 0)
{
cairo_region_t *region = cairo_region_create_rectangle (&rect);
- gtk_widget_set_csd_input_shape (widget, region);
+
+ gdk_surface_input_shape_combine_region (priv->surface, region, 0, 0);
cairo_region_destroy (region);
}
}